草庐IT

AndroidJUnit4 和参数化测试

全部标签

javascript - 使用依赖注入(inject)和 `done` 编写 Karma + Mocha 测试?

在既有依赖注入(inject)又完成的mocha中编写Karma单元测试的最优雅的方法是什么?依赖注入(inject):describe('cows',function(){it('fartsalot',inject(function(cow){//dostuff}))})完成:describe('cows',function(){it('fartsalot',function(done){//dostuff})})如果我想在我的单元测试中同时使用cow和done怎么办?现在,这就是我正在做的,但并不令人满意。beforeEach(inject(function(cow){this.c

javascript - 测试选项卡导航顺序

在我们的一项测试中,我们需要确保以正确的顺序执行表单内的选项卡键盘导航。问题:传统的用Protractor检查tab导航顺序的方法是什么?目前我们正在通过对表单中存在的尽可能多的输入字段重复以下步骤来解决此问题(代码如下):检查当前聚焦元素的ID(使用getId())将TAB键发送到当前获得焦点的元素这是规范示例:it("shouldnavigatewithtabcorrectly",function(){varregCodePage=newRegCodePage();browser.wait(protractor.ExpectedConditions.visibilityOf(reg

javascript - 在 JavaScript 中使用 "Boolean"作为 .filter() 的参数

最近我了解到可以使用Boolean关键字来检查boolean值是否为false,例如这里,arrayOfSheeps只是一个boolean值数组。functioncountSheeps(arrayOfSheeps){returnarrayOfSheeps.filter(Boolean).length;}由于我找不到任何有关使用“boolean”作为关键字的信息,我想知道这个词是否还有其他用途,甚至我可以用来了解它的任何资源。 最佳答案 Boolean不是关键字,它是function,而函数只是对象,您可以传递它们。它与以下内容相同:

javascript - 使用 Jasmine 测试 Angular Controller 中的非作用域函数

Jasmine是使用最广泛的测试框架之一,以BDD方式对javascript代码进行单元测试。我试图将它用于AngularJS组件测试。AngularJS文档提供了以下示例代码describe('PasswordController',function(){beforeEach(module('app'));var$controller;beforeEach(inject(function(_$controller_){$controller=_$controller_;}));describe('$scope.grade',function(){it('setsthestrength

javascript - Protractor 测试元素是否为空

我想测试这个div元素为空。varmessagesDiv=element(by.id('messagesDiv'));expect(messagesDiv).to...我将如何实现? 最佳答案 我认为:expect(messagesDiv.getText()).toBe('');应该可以解决问题。更多信息here. 关于javascript-Protractor测试元素是否为空,我们在StackOverflow上找到一个类似的问题: https://stack

javascript - 以无点风格在 Ramda 中编写无参数函数?

考虑下面的工作代码:varrandN=x=>()=>Math.floor(x*Math.random());varrand10=randN(10)times(rand10,10)//=>[6,3,7,0,9,1,7,2,6,0]randN是一个函数,它接受一个数字并返回一个RNG,当调用该RNG时,它将返回范围[0,N-1]中的一个随机整数。所以它是特定RNG的工厂。我一直在使用ramda.js,并学习函数式编程理论,我的问题是:是否可以使用ramda以无点样式重写randN?例如,我可以写:varbadAttempt=pipe(multiply(Math.random()),Math

带有对象表示法的javascript函数参数

有什么区别functionupdateSomething(item){}和functionupdateSomething({items}){}?第一个中的item变量也可以是对象,为什么第二个使用对象表示法?什么时候用前者,什么时候用后者? 最佳答案 这是来自ES2015的参数解构。在第二种情况下,您将局部变量初始化为参数的items属性的值。functionupdateSomething({items}){大致相当于functionupdateSomething(obj){varitems=obj.items;其他一些例子here

javascript - 如何测试返回 Promise 的方法

我正在编写Angular2RC5应用程序,并使用Karma和Jasmine进行单元测试。我有一个返回Promise的方法(它位于对angular的http.post的调用之上)我想在完成后运行一些断言。这样的东西是行不通的letresult=myService.getFoo();result.then(rslt=>expect(1+1).toBe(3));//theerrorislost这会创建一个“UnhandledPromiserejection”警告,但错误会被抑制并且测试通过。如何根据已解决的promise运行断言?注意事项:.catch()方法似乎不是我想要的。我不想记录或做

javascript - 在 Angular 单元测试中模拟 ngResource

我有一个看起来像这样的ngResourceMockFactory:(function(){'usestrict';angular.module('app').factory('NgResourceMock',ngResourceMockFactory);ngResourceMockFactory.$inject=[];functionngResourceMockFactory(){functionNgResourceMock(){varcontext=this;context.$promise.then=function(){context.prototype.$promise.the

javascript - 测试 JavaScript 中的对象链是否有效的好方法

这个问题在这里已经有了答案:AccessingnestedJavaScriptobjectsandarraysbystringpath(44个答案)TestforexistenceofnestedJavaScriptobjectkey(64个回答)关闭6年前。考虑这个例子:if(this.plantService.plants[id]){if(this.plantService.plants[id].Name){if(this.plantService.plants[id].Name[0])returnthis.plantService.plants[id].Name[0].value